import axios from 'axios';

// 创建axios实例
const service = axios.create({
	baseURL: import.meta.env.VITE_API_BASE_URL||'/api', // 使用代理地址避免CORS问题
	timeout: 5000, // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
	config => {
		// 添加请求头信息
		config.headers['Content-Type'] = 'application/json;charset=utf-8';
		return config;		
	},
	error => {
		// 请求错误处理
		return Promise.reject(error);
	}
);

// 响应拦截器
service.interceptors.response.use(
	response => {
		// 处理成功响应
		const res = response.data;
		if (typeof res === 'String') {
			res = res ? JSON.parse(res) : res;
		}
		// 根据后端约定的状态码处理
		if (res.code != 200) {
		  console.error('请求失败:', res.msg || '未知错误');
		  return Promise.reject(new Error(res.msg || 'Error'));
		} else {
		  return res;
		}
	},
	error => {
		// 处理响应错误
		console.error('接口请求错误:', error);
		// 统一错误处理示例
		if (error.response && error.response.status) {
			switch (error.response.status) {
				case 401:
					// 未授权，可能需要重新登录
					console.error('未授权，请重新登录');
					// 可以在这里添加跳转登录页的逻辑
					break;
				case 404:
					console.error('请求接口不存在');
					break;
				default:
					console.error(`请求错误: ${error.response.status}`);
			}
		}
		return Promise.reject(error);
	}
);

export default service;